package com.mxw.算法之美.a13字符串;

public class 重复的子字符串 {

    /**
     * 给定一个非空的字符串 s ，检查是否可以通过由它的一个子串重复多次构成。
     * 示例 1:
     * <p>
     * 输入: s = "abab"
     * 输出: true
     * 解释: 可由子串 "ab" 重复两次构成。
     * 示例 2:
     * <p>
     * 输入: s = "aba"
     * 输出: false
     */


    public boolean repeatedSubstringPatternV2(String s) {
        char[] charArray = s.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            // 以当前进行分割，如果可以平均分割
            for (int j = i + 1; j < charArray.length; j++) {
                String split = s.substring(i, j);
                String[] abs = s.split(split);
                if (abs.length == 0) {
                    return true;
                }
            }
        }
        return false;
    }


    public boolean repeatedSubstringPattern(String s) {
        char[] charArray = s.toCharArray();
        for (int i = 1; i <= charArray.length - 1; i++) {
            // 以当前进行分割，如果可以平均分割
            String split = s.substring(0, i);
            StringBuilder builder = new StringBuilder();
            int time = s.length() / split.length();
            for (int j = 1; j <= time; j++) {
                builder.append(split);
            }
            String string = builder.toString();
            if (s.equals(string)) {
                return true;
            }
        }
        return false;
    }

}
